package com.aiwiown.face.domain.compare;

import com.aiwiown.face.ApiObject;
import com.aiwiown.face.internal.mapping.ApiField;

import java.math.BigDecimal;

/**
 * <pre>
 *     表示对假脸攻击的判定，它包含四组置信度和阈值，均为实数取值［0，1］区间。如果一个置信度大于其对应的阈值，则可以认为存在对应类型的假脸攻击。
 * </pre>
 * FaceGenuineness
 * Date: 2020/4/24 0024
 * Time: 17:49
 *
 * @author tang.xiaosheng@qq.com
 */
public class FaceGenuineness extends ApiObject {
    private static final long serialVersionUID = 1649760811091782988L;
    /**
     * <合成脸的置信度>
     */
    @ApiField("synthetic_face_confidence")
    private BigDecimal syntheticFaceConfidence;

    /**
     * <合成脸的阈值>
     */
    @ApiField("synthetic_face_threshold")
    private BigDecimal syntheticFaceThreshold;

    /**
     * <面具的置信度>
     */
    @ApiField("mask_confidence")
    private BigDecimal maskConfidence;

    /**
     * <面具的阈值>
     */
    @ApiField("mask_threshold")
    private BigDecimal maskThreshold;

    /**
     * <屏幕翻拍的置信度>
     */
    @ApiField("screen_replay_confidence")
    private BigDecimal screenReplayConfidence;

    /**
     * <屏幕翻拍的阈值>
     */
    @ApiField("screen_replay_threshold")
    private BigDecimal screenReplayThreshold;

    /**
     * 仅取值"0"或"1"。其中"0"表示两张自拍照片图像内容一致，"1"表示两张自拍照片图像内容不一致。本字段仅procedure_type为selfie时才会出现
     */
    @ApiField("selfie_inconsistent")
    private BigDecimal selfieInconsistent;

    /**
     * 仅取值"0", "1", "2"。
     * "0"表示两张照片通过元数据判断，是一致的；
     * "1"表示两张照片元数据不一致；
     * "2"表示照片非jpg格式（这种情况一般只出现用户从相册选择照片上传的情况，这种情况意味照片本来就不是自拍照，无法验证是本人）。
     * 本字段仅procedure_type为selfie时且liveness_preferences不为selfie_no_metadata_check时才会出现
     */
    @ApiField("selfie_inconsistent")
    private BigDecimal selfieMetadataInconsistent;

    public BigDecimal getSyntheticFaceConfidence() {
        return syntheticFaceConfidence;
    }

    public void setSyntheticFaceConfidence(BigDecimal syntheticFaceConfidence) {
        this.syntheticFaceConfidence = syntheticFaceConfidence;
    }

    public BigDecimal getSyntheticFaceThreshold() {
        return syntheticFaceThreshold;
    }

    public void setSyntheticFaceThreshold(BigDecimal syntheticFaceThreshold) {
        this.syntheticFaceThreshold = syntheticFaceThreshold;
    }

    public BigDecimal getMaskConfidence() {
        return maskConfidence;
    }

    public void setMaskConfidence(BigDecimal maskConfidence) {
        this.maskConfidence = maskConfidence;
    }

    public BigDecimal getMaskThreshold() {
        return maskThreshold;
    }

    public void setMaskThreshold(BigDecimal maskThreshold) {
        this.maskThreshold = maskThreshold;
    }

    public BigDecimal getScreenReplayConfidence() {
        return screenReplayConfidence;
    }

    public void setScreenReplayConfidence(BigDecimal screenReplayConfidence) {
        this.screenReplayConfidence = screenReplayConfidence;
    }

    public BigDecimal getScreenReplayThreshold() {
        return screenReplayThreshold;
    }

    public void setScreenReplayThreshold(BigDecimal screenReplayThreshold) {
        this.screenReplayThreshold = screenReplayThreshold;
    }

    public BigDecimal getSelfieInconsistent() {
        return selfieInconsistent;
    }

    public void setSelfieInconsistent(BigDecimal selfieInconsistent) {
        this.selfieInconsistent = selfieInconsistent;
    }

    public BigDecimal getSelfieMetadataInconsistent() {
        return selfieMetadataInconsistent;
    }

    public void setSelfieMetadataInconsistent(BigDecimal selfieMetadataInconsistent) {
        this.selfieMetadataInconsistent = selfieMetadataInconsistent;
    }
}
